﻿using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using OpusSuite.Models.Model.LegalEntity.Agent;
using OpusSuite.Models.Model.Shared;

namespace OpusSuite.Models.Model.LegalEntity
{
    public abstract class LegalEntity : ModelBase, IStaticBase
    {
        [Key]
        public int Id { get; set; }

        [StringLength(30)]
        public string Code { get; set; }

        public virtual ReportingStatus ReportingStatus { get; set; }

        public virtual Organisation Organisation { get; set; }

        public virtual AccountingDetail AccountingDetail { get; set; }

        public virtual ClientReporting ClientReporting { get; set; }

        public virtual VatDetail VatDetails { get; set; }

        public virtual IList<BankAccount> BankAccounts { get; set; }

        public virtual IList<Charge> Charges { get; set; }

        public virtual Person Person { get; set; }
    }
}
